Method and apparatus for providing graphical overlays in a multimedia system

ABSTRACT

A method and apparatus for processing overlay data in a multimedia system include processing that begins when the server of the multimedia system selects a set of channels from a plurality of channels based on a set of channel select signals. The processing continues as the server converts the set of channels into streams of channel data. The server then decodes the streams of channel data into video frames for each channel of the set of channels. The processing continues as the server generates overlay data for at least one channel based on an overlay selection input, which is provided by the client that requested the particular channel. The processing then continues as the server encodes the overlay data with video frames of at least one channel to produce channel overlay packets. The processing continues as the server encodes the video frames of the other channels into sets of channels to produce channel packets. The server then provides the overlay packets and channel packets as a stream of packets of channel data to the clients of the system. Upon receipt, each client decodes the stream of packets of channel data to isolate its channel data. The client requesting overlay data decodes the overlay packets to retrieve the overlaid video frames using the same decoding process that the other clients used to retrieve the video data of their requested channels.

[0001] This patent application is a continuation-in-part of co-pendingpatent application entitled METHOD AND APPARATUS FOR A MULTIMEDIASYSTEM, having a filing date of: May 24, 2001, and a serial number of:Ser. No. 09/864,524.

TECHNICAL FIELD OF THE INVENTION

[0002] This invention relates generally to communication systems andmore particularly to graphical processing within such communicationsystems.

BACKGROUND OF THE INVENTION

[0003] As is known, a home entertainment system may include a receiver,multiple television sets, computers, VCRs, DVD players, satellitereceivers, cable receivers, set top boxes, etc. In such a system, eachtelevision set, computer, and other type of display devices includesvideo graphics circuitry that renders images (e.g., video and/orgraphics), processes graphical overlays, and/or processes audio data.

[0004] To process overlays, the video graphics circuitry renders a frameof video data into a frame buffer. As the frame of data is being storedin the frame buffer, the video graphics circuitry interprets each pixelto determine whether the pixel is to include video data or overlay data.Overlay data includes two-dimensional and/or three-dimensional graphicalimages such as channel selection guide, channel number indications,commercial messages, etc. When the pixel is to include overlay data, thevideo graphics circuitry retrieves the overlay data from a texture mapor graphical overlay memory.

[0005] As is also known, the retrieval of overlay data may furtherinclude scaling the overlay data to fit within a fixed sized window ofthe display. If the overlay data is scaled, the scaled data is stored inthe frame buffer and subsequently displayed. Once of full frame of data(video and/or overlay data) is stored in the frame buffer, the videographics circuitry provides the frame of data for display.

[0006] Accordingly, to process two-dimensional or three-dimensionaloverlay data, each television set, computer, monitor, and/or any otherdisplay device requires a significant amount of resources (e.g., mainprocessor, memory, two-dimensional and/or three-dimensional graphicsengine, etc.). Such resources are relatively expensive and, as such, aretypically not included in “thin devices”. A thin device is one thatprovides a minimal amount of audio/video features at a relatively lowcost. Such thin devices include Televisions, DVD decoders, etc. Whilesuch thin devices are available, the marketplace is demanding higherperformance from thin devices while maintaining their cost benefits.

[0007] Therefore, a need exists for a method and apparatus that allowsthin client devices to offer greater audio and/video features, includinggraphical overlays, with the resources previously required.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008]FIG. 1 illustrates a logic diagram of a multimedia system inaccordance with the present invention;

[0009]FIG. 2 illustrates a graphical diagram of providing graphicaloverlays in accordance with the present invention;

[0010]FIG. 3 illustrates a schematic diagram of a transcoding module inaccordance with the present invention;

[0011]FIG. 4 illustrates a schematic diagram of a multimedia server inaccordance with the present invention;

[0012]FIG. 5 illustrates a logic diagram of a method for processingoverlay data in accordance with the present invention;

[0013]FIG. 6 illustrates a logic diagram of a method for transcodingdata in accordance with the present invention; and

[0014]FIG. 7 illustrates a logic diagram of an alternate method fortranscoding data in accordance with the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

[0015] Generally, the present invention provides a method and apparatusfor processing overlay data in a multimedia system. Such a method andapparatus include processing that begins when the server of themultimedia system selects a set of channels from a plurality of channelsbased on a set of channel select signals. For example, clients of amultimedia system provide channel selection requests to the server. Theserver selects the set of channels based on the channel selectionrequests provided by the clients. The processing continues as the serverconverts the set of channels into streams of channel data. The serverthen decodes the streams of channel data into video frames for eachchannel of the set of channels. The processing continues as the servergenerates overlay data for at least one channel of the set of channelsbased on an overlay selection input, which is provided by the clientthat requested the particular channel. The processing then continues asthe server encodes the overlay data with video frames of at least onechannel to produce channel overlay packets. The processing continues asthe server encodes the video frames of the other channels in set ofchannels to produce channel packets. The server then provides theoverlay packets and channel packets as a stream of packets of channeldata to the clients of the system. Upon receipt, each client decodes thestream of packets of channel data to isolate its channel data. Theclient requesting overlay data decodes the overlay packets to retrievethe overlaid video frames using the same decoding process that the otherclients used to retrieve the video data of their requested channels.With such a method and apparatus, expensive video graphics processingmay be performed in a server of a multimedia system and encoding priorto transmission to the clients. As such, each client only requires adecoder to produce specially processed video data, including graphicaloverlays embedded within the Video Data. For example, the output is aMPEG compressed stream comprising the original video overlay with aGraphic Image that is re-encoded as MPEG video PES packets referred toherein as “packets”.

[0016] The present invention can be more fully described with referenceto FIGS. 1-7. FIG. 1 illustrates a schematic block diagram of amultimedia system 10 that includes a server 12, a plurality of clientdevices 14-20, and a plurality of multimedia sources 22. Such a clientdevice may be a personal digital assistant, a personal computer, amonitor (e.g., LCD monitor, flat panel monitor, CRT monitor, et ceteraand may include speakers, or speaker connections, et cetera), atelevision set, high definition television (HDTV), standard definitiontelevision (SDTV), a home theatre system, laptop computer, et cetera.

[0017] Each of the client devices 14-20 includes a decoder and inputcircuitry. The decoder is the compliment of the encoders 52-56 used inthe server. For example, the encoding/decoding may be done in accordancewith any one of the MPEG standards, MJPEG, JPEG, etc. The inputcircuitry may be, but is not limited to, a keyboard, remote controldevice, touch screen, voice command circuitry, keypad, and/or joystick.In addition, each of the client devices 14-20 is operably coupled to theserver via a wireless or wired local area network (LAN) and includes anappropriate network-interfacing card. For example, the client devicesmay include a wireless network card in accordance with the 802.11standard or an Ethernet network card, etc.

[0018] The server 12 includes a tuning module 26, stream parsing module28, a transcoding module 30, transceiving module 32, and a controlmodule 78. The transcoding module 30 includes a decoding module 34,graphical overlay module 36, and an encoding module 38. The decodingmodule 34 includes a plurality of decoders 40-44. The graphical overlaymodule 36 includes a plurality of overlay modules 46-50. The encodingmodule 38 includes a plurality of encoding modules 52-56. The controlmodule 78 includes a processing module 80 and memory 82. The processingmodule 80 may be a single processing device or a plurality of processingdevices. Such a processing device may be a microcontroller,microprocessor, microcomputer, central processing unit, digital signalprocessor, programmable gate array, state machine, logic circuitry,and/or any device that manipulates signals (analog and/or digital) basedon operational instructions. The memory 82 may be a single memory deviceor a plurality of memory devices. Such a memory device may be aread-only memory, random access memory, system memory, flash memory,magnetic tape memory, programmable memory, erasable memory, and/or anydevice that stores digital information. Note that when the processingmodule 80 implements one or more of its functions via a state machine orlogic circuitry, the memory 82 storing the corresponding instructions isembedded within the circuitry comprising the state machine or logiccircuitry. The processing module 80 performs one or more of theprocessing steps illustrated in the logic diagrams of FIGS. 5-7, whichwill be discussed below.

[0019] In operation, the server 12 receives a plurality of channels 24from a plurality of multimedia sources 22. The multimedia sources 22 maybe a satellite connection, cable connection, antenna connection for NTSCtelevision broadcast, HDTV broadcast, PAL broadcast, VCRplayer/recorder, DVD player, et cetera. Accordingly, the plurality ofchannels 24 may be programs received by a satellite receiver, set topbox receiver, output of a DVD player, etc. The tuning module 26 selectsone or more channels from the plurality of channels 24 based on channelselect signals 58 to produce a set of channels 60. The channel selectsignals are received as requests 84 from at least some of the clientdevices and each channel select signal indicates a particular channelthat a user of a client device desires to view. A detailed discussion ofthe construct and functioning of the tuning module 26 is found in theco-pending parent patent application entitled METHOD AND APPARATUS FOR AMULTIMEDIA SYSTEM.

[0020] The stream parsing module 28 receives the set of channels 60 andseparates the set of channels into streams of channel data 62. Thestream parsing module 28 provides the separate streams of channel data62 to the decoding module 34 of the transcoding module 30. A detaileddiscussion of the construct and functioning of the stream parsing module28 is found in the co-pending parent patent application entitled METHODAND APPARATUS FOR A MULTIMEDIA SYSTEM.

[0021] Each decoder 40-44 of the decoding module 34 decodes one of thestreams of channel data 62 to produce video frames of the channel. Forexample, decoder 40 decodes a first stream of channel data into videoframes 64, decoder 42 decodes a second stream of channel data into videoframes 66, and decoder 44 decodes a n^(th) stream of channel data intovideo frames 68. Each of the decoders 40-44 may be an MPEG decoderoperably coupled to decode the stream of channel data into MPEG videoframes for each channel of the set of channels. As one of average skillin the art will appreciate, decoding module 34 may further include audiodecoding circuitry, such an MP3 decoder, MPEG audio decoding, DVD audiodecoder, and/or CD decoder. The decoding module 34 provides the videoframes 64, 66, and 68 of each separate channel to the encoding module38.

[0022] Each overlay module 46-50 of the graphical overlay module 36receives an overlay command 86 from the clients via the control module78 and produces overlay data 70, 72, or 74. The overlay command 86indicates whether an overlay is to be processed for a given channel, thegraphical data to be overlaid, size of the graphical overlay, colordata, texture map coordinates, and/or any information to enable agraphical overlay of video frames of a channel. Each overlay module46-50 may be implemented via a separate video graphics processor, or asvirtual graphics processor of a video graphics circuit. Thefunctionality of a video graphics processor is known as used in personalcomputers, laptop computers, television sets, monitors, etc. Thus, nofurther discussion will be presented except to illustrate the conceptsof the present invention.

[0023] The encoding module 38 receives the video frames 64, 66, and 68for the separate channels and also receives the overlay data 70, 72,and/or 74 for each of the separate channels. As one of average skill inthe art will appreciate, each channel may or may not be overlaid withtwo-dimensional and/or three-dimensional graphical data. Such graphicaldata includes, but is not limited to, volume sliders, channelindicators, electronic program guide, onscreen menus, translucentimages, subtitles, games, web server applications, and/or motion vectorsthat direct a motion vector search algorithm of the encoder to retrievethe overlay data, and any other applications that involve the display ofgraphical objects.

[0024] Each encoder 52-56 encodes the graphical data 70-74, if enabledfor the given channel, along with each of the video frames 64-68 toproduce packets of channel data 76. Such encoders 52-56 may be an MPEGencoder, JPEG encoder, MJPEG encoder, and/or any other type of videoencoding. The encoders 52-56 encode the overlay data and the videoframes in accordance with the overlay commands 86. The overlay commands86 indicate whether a video frame is to be overlaid with overlay dataand where in the video frame the overlay data is to be placed. As such,an encoder 52-56 encodes a video frame into packets of channel datauntil the overlay command indicates that overlay data is to be encoded.

[0025] The transceiving module 32 receives the packets of channel data76 and provides the packets to the plurality of client devices 14-20 viathe LAN connection. Each client monitors the LAN connection to extractpackets that are addressed to it. Using the decoder, each client decodesthe packets to recapture the video data, which may include an overlay.As such, expensive video graphics processing is performed by the serverof a multimedia system and encoding prior to transmission to theclients. Accordingly, each client only requires a decoder to producespecially processed video data, including graphical overlays.

[0026] The transceiving module 32 also receives packets of input datafrom the clients via the LAN connection. Such inputs include selectionof a channel from one of the plurality of channels 24, selection of anoverlay, input responses to a menu, etc. The transceiving module 32decodes the packets and provides the inputs to the control module 78.The control module 78 processes the inputs to produce channel selectsignals 58 and/or overlay commands 86. The operation of the multimediasystem 10 is further described in co-pending parent patent applicationentitled METHOD AND APPARATUS FOR A MULTIMEDIA SYSTEM.

[0027]FIG. 2 illustrates a graphical representation of transcodingmodule 30 encoding the video frames and overlay data. As shown, decoder40 produces a plurality of video frames 64 for channel A from a separatestream of channel data. The decoder 40 provides the video frames 64 tothe encoder 52. The overlay module 46 generates overlay data A 70 andprovides the overlay data A to the encoder 52. The encoder 52 encodesthe overlay data A and the video frames of Channel A into packets ofencoded Channel A data. As shown, the packets of Channel A include aplurality of video frames, each of which includes overlay data A in awindow of the video frames.

[0028] As is also shown, decoder 42 produces a plurality of video frames66 for channel B from a separate stream of channel data. The decoder 42provides the video frames 66 to the encoder 54. The overlay module 48generates overlay data B 72 and provides the overlay data B to theencoder 54. The encoder 54 encodes the overlay data B and the videoframes of Channel A into packets of encoded Channel B data. As shown,the packets of Channel B include a plurality of video frames, each ofwhich includes overlay data B in a window of the video frames. As one ofaverage skill in the art will appreciate, the above mentionedEncoding/Decoding refers to MPEG decode and encode within the digitaldomain.

[0029]FIG. 3 illustrates a schematic block diagram of an alternatetranscoding module 90 for use in server 12. The transcoding module 90includes the decoding module 34, the graphical overlay module 36, arendering module 92, and the encoding module 38. The decoding module 34includes a plurality of decoders 40-44, which decode streams of channeldata into video frames 64-68. The decoding module 34 provides the videoframes 64-68 to the rendering module 92.

[0030] The graphical overlay module 36 includes a graphics processor100, graphics memory 102, and a graphics engine 104. The graphicsprocessor 100 generates overlay rendering instructions 106 based on theoverlay commands 86. The rendering instructions 106 include texture mapinformation, texture map coordinates, color data information, displaycoordinates, etc. The graphics memory 102 stores graphical data 110,texture maps, etc., which is provided to the graphics engine 104. Thegraphics engine 104 processes the graphical data 110 based on theoverlay rendering instructions 106 to produce two-dimensional and/orthree-dimensional graphical overlays 112 for one or more of thechannels. The functionality of the graphics processor 100 and graphicsengine 104 is known, thus no further discussion will be presented exceptto further illustrate the concepts of the present invention.

[0031] The rendering module 92 receives the video frames 64-68 and theseparate graphical data 112 via rendering engines 94-98. Each of therendering engines 94-98 render frames of data from the video frames64-68 and the graphical overlays 112. The rendered frames are providedto the encoding module 38, which encodes the frames into packets ofchannel data 76 via encoders 52-56.

[0032]FIG. 4 illustrates a schematic block diagram of a multimediaserver 120, which includes a processing module 122 and memory 124. Theprocessing module 122 may be a single processing device or a pluralityof processing devices. Such a processing device may be amicrocontroller, microprocessor, microcomputer, central processing unit,digital signal processor, programmable gate array, state machine, logiccircuitry, and/or any device that manipulates signals (analog and/ordigital) based on operational instructions. The memory 124 may be asingle memory device or a plurality of memory devices. Such a memorydevice may be a read-only memory, random access memory, system memory,flash memory, magnetic tape memory, programmable memory, erasablememory, and/or any device that stores digital information. Note thatwhen the processing module 122 implements one or more of its functionsvia a state machine or logic circuitry, the memory 124 storing thecorresponding instructions is embedded within the circuitry comprisingthe state machine or logic circuitry. The processing module 122 performsone or more of the processing steps illustrated in the logic diagrams ofFIGS. 5-7, which will be discussed below.

[0033]FIG. 5 illustrates a logic diagram of a method for processingoverlay data in a multimedia system. The process begins at step 130where the server selects a set of channels from a plurality of channelsbased on a set of channel select signals. The server receives channelselect requests from the plurality of clients and generates, therefrom,the channel select signals. The channel select signals indicate which ofthe plurality of channels are to be selected and included in the set ofchannels. The processing continues at step 132 where the server convertsthe set of channels into streams of channel data. Such a conversion waspreviously discussed with reference to FIG. 1.

[0034] The process proceeds to step 134 where the server decodes thestreams of channel data into video frames for each channel of the set ofchannels. The process then proceeds to step 136 where the servergenerates overlay data for at least one channel of the set of channelsbased on an overlay selection input. The generation of the overlay datamay be done by generating overlay rendering instructions based on theoverlay selection input and generating two dimensional and/or threedimensional graphical overlays from graphics data based on the overlayrendering instructions.

[0035] The process then proceeds to step 138 where the server encodesthe overlay data with at least a portion of each of the video frames ofat least one channel of set of channels into channel overlay packets. Inother words, the server encodes overlay data with the video frames ofeach channel for which overlays has been activated. The process thenproceeds to step 140 where the server encodes at least one channel ofthe set of channels into channel packets. In other words, the serverencodes the video frames of each channel for which an overlay has notbeen activated.

[0036] The process then proceeds to step 142 where the server providesthe overlay packets and channel packets as a stream of packets ofchannel data. In addition to providing the packets to the clients, theserver may also receive input requests from the plurality of clients.The input requests include selection of the particular overlay data,modify an overlay, respond to the overlay, etc. Further, the server maygenerate audio overlay data based on an audio overlay selection input.The server would then encoded the audio overlay data with at least aportion of the audio of each of the video frames of the channel.

[0037]FIG. 6 illustrates a logic diagram of a method for transcodingdata within a server of a multimedia system. The process begins at step150 where the server retrieves video frames for each channel of aplurality of channels. The process then proceeds to step 152 where theserver retrieves overlay data for each channel of the plurality ofchannels. This may be done by selecting the overlay data for eachchannel of the plurality of channels based on a corresponding one of aplurality of overlay selection inputs. The overlay data may be graphicalimages for at least one of: electronic program guide, subtitles, menus,games, web server applications, or motion vectors that direct motionvector search algorithm of the encoder.

[0038] The processing continues at step 154 where the server encodes thevideo frames of each channel of the plurality of channels with theoverlay data for the each channel of the plurality of channels toproduce encoded channel data. The encoding may be done by MPEG encodingthe video frames of at least one of the plurality of channels.

[0039]FIG. 7 illustrates a logic diagram of a method for transcodingdata within a server of a multimedia system. The processing begins atstep 160 where the server retrieves video frames for each channel of aplurality of channels. The processing then proceeds to step 162 wherethe server retrieves overlay data for each channel of the plurality ofchannels. This may be done by selecting the overlay data for eachchannel of the plurality channels based on a corresponding one of aplurality of overlay selection inputs.

[0040] The process then proceeds to step 164 where the server rendersthe corresponding overlay data with the video frames for each channel ofthe plurality of channels to produce overlaid video frames for eachchannel of the plurality of channels. The process then proceeds to step166 where the server encodes the overlaid video frames of the eachchannel of the plurality of channels to produce encoded channel data.The encoding may be done by MPEG encoding the video frames of the eachchannel of the plurality of channels.

[0041] The preceding discussion has presented a method and apparatus forproviding specialty graphical operations in a multimedia system,including graphical overlays. By processing the graphical data prior toencoding, the server provides the graphic overlay processing, thus theclient devices only need a decoding function to recapture graphicallyoverlaid video data. As one of average skill in the art will appreciate,other embodiments may be derived from the teachings of the presentinvention without deviating from the scope of the claims. As one ofaverage skill in the art will further appreciate, the video may also bescaled/offset thus allowing for support of picture in picturecombinations with, the overlays may be of varying opacity i.e. opaque,semi-transparent, etc., and Note : the Video and Graphical overlays maybe alpha blended prior to being encoded.

What is claimed is:
 1. A server for use in a multimedia system, theserver comprises: tuning module operably coupled to select a set ofchannels from a plurality of channels based on a set of channel selectsignals; stream parsing module operably coupled to convert the set ofchannels into streams of channel data; and transcoding module operablycoupled to packetize the streams of channel data and overlay data intopackets of channel data, wherein the transcoding module includes:decoding module operably coupled to decode the streams of channel datainto video frames for each channel of the set of channels; graphicaloverlay module operably coupled to generate overlay data for at leastone channel of the set of channels based on an overlay selection input;and encoding operably coupled to encode the overlay data with at least aportion of each of the video frames of the at least one channel of theset of channels and to encode the video frames of the set of channelsless the at least one channel of the set of channels to produce thepackets of channel data.
 2. The server of claim 1, wherein the decodingmodule further comprises: MPEG decoder operably coupled to decode thestream of channel data into MPEG video frames for each channel of theset of channels.
 3. The server of claim 2, wherein the encoding modulefurther comprises: MPEG encoder operably coupled to encode the overlaydata with the at least a portion of each of the video frames of at leastone of the set of channels and to encode the video frames of the set ofchannels less the at least one of the set of channels to produce theMPEG packets of channel data.
 4. The server of claim 1, wherein thegraphical overlay module further comprises: graphics processor operablycoupled to generate overlay rendering instructions based on the overlayselection input; graphics memory operably coupled to the graphicsprocessor, wherein the memory stores graphics data; and graphics engineoperably coupled to the graphics processor and the graphics memory,wherein the graphics engine generates two dimensional or threedimensional graphical overlays from the graphics data based on theoverlay rendering instructions to produce the overlay data.
 5. Theserver of claim 1 further comprises: control module operably coupled tothe tuning module and the transcoding module, wherein the control moduleincludes a processing module and memory, wherein the memory storesoperational instructions that cause the processing module to generatechannel selection commands from channel selection requests and toprovide the channel selection commands to the tuning module, wherein thetuning module selects at least one channel of the set of channels pereach of the channel selection commands, wherein the memory furtherincludes operational instructions that cause the processing module togenerate an overlay command from the overlay selection input, whereinthe control module provides the overlay command to the encoding modulesuch that the encoding module encodes the overlay data with the at leasta portion of the video frames of the at least one channel of the set ofchannels.
 6. The server of claim 5, wherein the memory of controlfurther comprises operational instructions that cause the processingmodule to: generate a set of overlay commands from a set of overlayrequests, wherein each of the set of overlay requests corresponds to anindividual channel of the set of channels; provide the set of overlaycommands to the graphics overlay module, wherein the graphics overlaymodule generates a set of overlay data that corresponds to the set ofoverlay commands; and provide the set of overlay commands to the encodersuch that the encoder encodes corresponding overlay data of the set ofoverlay data with video frames of a channel of the set of channels. 7.The server of claim 6, wherein the overlay data further comprises:graphical images for at least one of: electronic program guide,subtitles, menus, games, and web server applications; and motion vectorsthat direct motion vector search algorithm of the encoder.
 8. The serverof claim 1, wherein the transcoding module further comprises: renderingmodule operably coupled to receive the overlay data and the video framesof the at least one channel of the set of channels, wherein therendering module renders the overlay data with each of the video framesof the at least one channel of the set of channels into a series ofoverlaid frames, wherein the rendering module provides the overlaidframes to the encoding module such that the encoding module encodes theoverlaid frames into the packets of channel data.
 9. The server of claim1 further comprises: transceiving module operably coupled to transmitthe packets of channel data to a plurality of clients and operablycoupled to receive input requests from the plurality of clients, whereinthe input requests include the overlay selection input.
 10. The serverof claim 9, wherein the input requests further comprise: modify requeststhat are based on user inputs to the plurality of clients, wherein thetransceiving module receives the modify requests and provides the modifyrequests to the transcoding module, wherein the graphical overlay modulemodifies the overlay data based on the modify requests.
 11. The serverof claim 1, wherein the transcoding module further comprises: audiooverlay module operably coupled to generate audio overlay data based onan audio overlay selection input, wherein the audio overlay moduleprovides the audio overlay data to the encoding module such that theencoding encodes the audio overlay data with at least a portion of audioassociated with each of the video frames of the at least one channel ofthe set of channels.
 12. A method for processing overlay data in amultimedia system, the method comprises: selecting a set of channelsfrom a plurality of channels based on a set of channel select signals;converting the set of channels into streams of channel data; decodingthe streams of channel data into video frames for each channel of theset of channels; generating overlay data for at least one channel of theset of channels based on an overlay selection input; encoding theoverlay data with at least a portion of each of the video frames of theat least one channel of the set of channels into channel overlaypackets; encoding the video frames of the set of channels less the atleast one channel of the set of channels into channel packets; andproviding the overlay packets and channel packets as a stream of packetsof channel data.
 13. The method of claim 12, wherein the generating theoverlay data further comprises: generating overlay renderinginstructions based on the overlay selection input; and generating twodimensional or three dimensional graphical overlays from graphics databased on the overlay rendering instructions to produce the overlay data.14. The method of claim 12 further comprises: generating channelselection commands from channel selection requests; selecting at leastone channel of the set of channels per each channel selection commands;generating an overlay command from the overlay selection input; andencoding the overlay data with the at least a portion of the videoframes of the at least one channel of the set of channels in accordancewith the overlay command.
 15. The method of claim 14 further comprises:generating a set of overlay commands from a set of overlay requests,wherein each of the set of overlay requests corresponds to an individualchannel of the set of channels; generating a set of overlay data thatcorresponds to the set of overlay commands in accordance with the set ofoverlay commands; and encoding corresponding overlay data of the set ofoverlay data with video frames of a channel of the set of channels inaccordance with the set of overlay commands.
 16. The method of claim 12further comprises: transmitting the packets of channel data to aplurality of clients; and receiving input requests from the plurality ofclients, wherein the input requests include the overlay selection input.17. The method of claim 16 further comprises: receiving a modify requestas at least one of the input requests; and modifying the overlay databased on the modify request.
 18. The method of claim 12 furthercomprises: generating audio overlay data based on an audio overlayselection input; and encoding the audio overlay data with at least aportion of audio associated with each of the video frames of the atleast one channel of the set of channels.
 19. An apparatus forprocessing overlay data in a multimedia system, the apparatus comprises:processing module; and memory operably coupled to the processing module,wherein the memory includes operational instructions that cause theprocessing module to: select a set of channels from a plurality ofchannels based on a set of channel select signals; convert the set ofchannels into a stream of channel data; decode the stream of channeldata into video frames for each channel of the set of channels; generateoverlay data for at least one channel of the set of channels based on anoverlay selection input; encode the overlay data with at least a portionof each of the video frames of the at least one channel of set ofchannels into channel overlay packets; encode the video frames of theset of channels less the at least one channel of the set of channelsinto channel packets; and provide the overlay packets and channelpackets as a stream of packets of channel data.
 20. The apparatus ofclaim 19, wherein the memory further comprises operational instructionsthat cause the processing module to generate the overlay data by:generating overlay rendering instructions based on the overlay selectioninput; and generating two dimensional or three dimensional graphicaloverlays from graphics data based on the overlay rendering instructionsto produce the overlay data.
 21. The apparatus of claim 19, wherein thememory further comprises operational instructions that cause theprocessing module to: generate channel selection commands from channelselection requests; select at least one channel of the set of channelsper each of channel selection commands; generate an overlay command fromthe overlay selection input; and encode the overlay data with the atleast a portion of the video frames of the at least one channel of theset of channels in accordance with the overlay command.
 22. Theapparatus of claim 21, wherein the memory further comprises operationalinstructions that cause the processing module to: generate a set ofoverlay commands from a set of overlay requests, wherein each of the setof overlay requests corresponds to an individual channel of the set ofchannels; generate a set of overlay data that corresponds to the set ofoverlay commands in accordance with the set of overlay commands; andencode corresponding overlay data of the set of overlay data with videoframes of a channel of the set of channels in accordance with the set ofoverlay commands.
 23. The apparatus of claim 19, wherein the memoryfurther comprises operational instructions that cause the processingmodule to: transmit the packets of channel data to a plurality ofclients; and receive input requests from the plurality of clients,wherein the input requests include the overlay selection input.
 24. Theapparatus of claim 23, wherein the memory further comprises operationalinstructions that cause the processing module to: receive a modifyrequest as at least one of the input requests; and modify the overlaydata based on the modify request.
 25. The apparatus of claim 19, whereinthe memory further comprises operational instructions that cause theprocessing module to: generate audio overlay data based on an audiooverlay selection input; and encode the audio overlay data with at leasta portion of audio associated with each of the video frames of the atleast one channel of the set of channels.
 26. A method for transcodingdata, the method comprises: retrieving video frames for each channel ofa plurality of channels; retrieving overlay data for each channel of theplurality of channels; and encoding the video frames of each channel ofthe plurality of channels with the overlay data for the each channel ofthe plurality of channels to produce encoded channel data.
 27. Themethod of claim 26, wherein the encoding further comprises MPEG encodingthe video frames of the each channel of the plurality of channels. 28.The method of claim 26 further comprises: selecting the overlay data foreach channel of the plurality channels based on a corresponding one of aplurality of overlay selection inputs.
 29. The method of claim 26,wherein the overlay data comprises: graphical images for at least oneof: electronic program guide, subtitles, menus, games, and web serverapplications; and motion vectors that direct motion vector searchalgorithm of the encoder.
 30. A method for transcoding data, the methodcomprises: retrieving video frames for each channel of a plurality ofchannels; retrieving overlay data for each channel of the plurality ofchannels; rendering the corresponding overlay data with the video framesfor the each channel of the plurality of channels to produce overlaidvideo frames for the each channel of the plurality of channels; andencoding the overlaid video frames of the each channel of the pluralityof channels to produce encoded channel data.
 31. The method of claim 30,wherein the encoding further comprises MPEG encoding the video frames ofthe each channel of the plurality of channels.
 32. The method of claim30 further comprises: selecting the overlay data for each channel of theplurality channels based on a corresponding one of a plurality ofoverlay selection inputs.
 33. An apparatus for transcoding data, theapparatus comprises: processing module; and memory operably coupled tothe processing module, wherein the memory includes operationalinstructions that cause the processing module to: retrieve video framesfor each channel of a plurality of channels; retrieve overlay data foreach channel of the plurality of channels; and encode the video framesof each channel of the plurality of channels with the overlay data forthe each channel of the plurality of channels to produce encoded channeldata.
 34. The apparatus of claim 33, wherein the memory furthercomprises operation instructions that cause the processing module to:MPEG encode the video frames of the each channel of the plurality ofchannels.
 35. The apparatus of claim 33, wherein the memory furthercomprises operation instructions that cause the processing module to:select the overlay data for each channel of the plurality channels basedon a corresponding one of a plurality of overlay selection inputs. 36.The apparatus of claim 33, wherein the overlay data comprises: graphicalimages for at least one of: electronic program guide, subtitles, menus,games, and web server applications; and motion vectors that directmotion vector search algorithm of the encoder.
 37. An apparatus fortranscoding data, the apparatus comprises: processing module; and memoryoperably coupled to the processing module, wherein the memory includesoperational instructions that cause the processing module to: retrievevideo frames for each channel of a plurality of channels; retrieveoverlay data for each channel of the plurality of channels; render thecorresponding overlay data with the video frames for the each channel ofthe plurality of channels to produce overlaid video frames for the eachchannel of the plurality of channels; and encode the overlaid videoframes of the each channel of the plurality of channels to produceencoded channel data.
 38. The apparatus of claim 37, wherein the memoryfurther comprises operation instructions that cause the processingmodule to: MPEG encode the video frames of the each channel of theplurality of channels.
 39. The apparatus of claim 37, wherein the memoryfurther comprises operation instructions that cause the processingmodule to: selecting the overlay data for each channel of the pluralitychannels based on a corresponding one of a plurality of overlayselection inputs.